package edu.osu.cse.c651.cryptochess;

public interface IChessBoard {

	/**
	 * Used on each move. Returns true if the move is legal, false if not. The
	 * state of the board is changed if the method returns true; if it returns
	 * false, nothing changes.
	 * 
	 * @param playercolor
	 *            White or Black
	 * @param x1
	 *            The row of the piece to be moved
	 * @param y1
	 *            The column of the piece to be moved
	 * @param x2
	 *            The row of the requested destination square
	 * @param y2
	 *            The column of the requested destination square
	 * @returns boolean True if the move is legal
	 */
	public boolean move(Color playerColor, int x1, int y1, int x2, int y2);

	/**
	 * Returns the piece that was captured on the most recent move. Null if no
	 * piece was captured. Captured pieces are stored with pieces' owner. This
	 * method should be invoked by a Player immediately prior his move.
	 * 
	 * @returns Piece captured Piece of the owner Player
	 */
	public Piece getCapturedPiece();

}
